#ifndef SESSION_MANAGER_H
#define SESSION_MANAGER_H

#include "global.h"

namespace smsrouter {

class SessionManagerPrivate;

class SessionManager : public QObject {
  Q_OBJECT
public:
  SessionManager();

  ~SessionManager();

  State getState();

public slots:

  void start();

  void stop();

  void responce(SrcSubmitSm *);

  void send(DestSubmitSm *);

  void send(SrcDeliverSm *);

signals:

  void stateChanged(State state);

  void receive(SrcSubmitSm *);

  void receive(DestDeliverSm *);

  void responced(SrcSubmitSm *);

  void responced(DestDeliverSm *);

  void responce(DestSubmitSm *);

  void responce(SrcDeliverSm *);

private:

  friend class SessionManagerPrivate;

  SessionManagerPrivate *p;
};

} // namespace smsrouter

#endif // SESSION_MANAGER_H
